﻿using CheccCoverplateCulvertAssemble.Common.Total;
using CheccCoverplateCulvertAssemble.Conmmon;
using CheccCoverplateCulvertAssemble.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CheccCoverplateCulvertAssemble.Operation
{
    internal class EndWallFactory : FactoryCreator
    {
        public EndWallBase endWallBase { get;  private set; }
        public CapStoneBase capStoneBase { get; private set; }
        public CapLocation capLocation { get; private set; }
        public double culvertLength { get; private set; }
        public EndWallFactory(EndWallBase endWallBase,CapStoneBase capStoneBase,CapLocation capLocation,double culvertLength)
        {
            this.endWallBase = endWallBase;
            this.capStoneBase = capStoneBase;
            this.capLocation = capLocation;
            this.culvertLength = culvertLength;
        }
        
        public override ConstructingEntity ConstructingEntityCreator(BasicConstructor basicConstructor, CulvertType culvertType, ConstructionMethod constructionMethod, CulvertComponentType culvertComponentType)
        {
            return new EndWall(this.endWallBase, this.capStoneBase, basicConstructor,this.culvertLength, this.capLocation, culvertType, constructionMethod, culvertComponentType);
        }
    }
}
